Failsafe operation of information technology systems is of fundamental importance for most modern society activities. Due to this there are many precautionary systems that are made to handle situations of failure.
Such systems could comprise safeguarding of information via memory backup systems as well as safeguarding of complete system functionality. The latter could comprise completely mirrored or redundant systems, where all actions are executed in primary and secondary system components (computer, processor, server, etc).
There are essentially two categories of replication: synchronous and asynchronous replication.
In a synchronous replica system a customer does not get any confirmation for his transaction until it has reached both the primary site and the disaster recovery site. This implies that the latency for the transaction is increased at least by the round trip between primary and disaster recovery site.
In an asynchronous replica system the customer gets a confirmation as soon as the primary has received it, and replication to the disaster recovery site is best effort as soon as possible. This implies that in case of a disaster occurring at the primary site, there is a risk that some transactions confirmed to customers are actually not present at the disaster recovery site. An example of such a system is described in US 2006/0020635.
In existing replica server system it is currently typically a basic IT architecture decision if one wants to use asynchronous or synchronous replication. For example in the case of an electronic exchange, neither the electronic exchange nor its participants can choose which policy to use.
In the financial field, e.g. electronic exchange systems for stocks, bonds, derivates, etc, failsafe high-speed in-memory servers are used. These systems are also referred to as replica server systems. Similar to the above disclosed system, a replica server system comprises a primary replica and a secondary replica, both being identical and in the same state. Should the primary replica fail, the secondary replica will take over immediately. Of course, the system may contain several secondary replicas to improve safety. Upon failure of the primary replica, one of the secondary replicas will then become a new primary replica, while the others remain as secondary replicas.
The recent trend of program/algorithmic trading in the financial field, and the evolution of competitive electronic exchanges, e.g. the same security being trading at more than one exchange, has created a need for minimum latency. The current expectation level is to have sub millisecond response time on order transactions. This expectation is more or less impossible due to speed of light limitations, if synchronous replication is used and there is a reasonable distance between the primary and disaster recovery sites.
Moreover, in some applications, e.g. Government Bond trading, the value of an individual transaction is so high that synchronous replication is a must. No one is prepared to accept the risk of losing one such transaction in case of fail-over to the disaster recovery site.
Thus one problem with present replica server systems and other similar systems is the architecture of the system. Either they are synchronous or asynchronous as described above, and thus, the systems are not flexible.
Another problem with known replica server systems is that they do not differ between different messages.
There is thus a need for an adaptable replica server system and especially a replica server system that considers different types of messages while operating large numbers of parallel transactions.